#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stack>

using namespace std;

string removeDuplicates(string s) {
    stack<char> st;
    string ret;

    for (auto c : s)
    {
        if (!st.empty() && st.top() == c)
        {
            st.pop();
        }
        else
        {
            st.push(c);
        }
    }

    while (!st.empty())
    {
        ret += st.top();
        st.pop();
    }

    reverse(ret.begin(), ret.end());

    return ret;
}

int main()
{
    cout << removeDuplicates("abbaca");
	return 0;
}